<?php
	// 常量SOL_TCP代表TCP
	// 常量SOL_UDP代表UDP
	$de_ip = '127.0.0.1';
	$de_port = '8001';

	// 创建一个socket，它有三个参数，返回值是一个句柄（资源）
	$de_socket = socket_create( AF_INET , SOCK_STREAM , SOL_TCP );
	// 将IP地址和端口绑定到socket_create创建的句柄中，有三个参数，返回布尔值
	if( socket_bind( $de_socket , $de_ip , $de_port ) ){

	}
	// 监听即将接入的socket连接，仅当socket的交互类型为SOCK_STREAM或SOCK_SEQPACKET时可用，它有两个参数，返回布尔值
	if( socket_listen( $de_socket ) ){

	}
	// 将socket句柄设置为阻塞模式，只有一个必选参数，返回布尔值。它可以将非阻塞模式的socket转换为阻塞模式
	// if( scoket_set_block( $de_socket ) ){

	// }
	// 向socket中写入指定大小的缓冲数据，有三个参数，返回写入的数据的字节数
	socket_write( $de_socket , $buffer );
	// 从socket中读取指定字节长度的数据，有三个参数，返回读取的字符串数据
	socket_read( $de_socket , $length );
	// 该函数用于实现一个持久的socket连接，即长连接，返回一个句柄。它与 fsockopen 的区别在于，pfsockopen 建立的连接，在脚本执行完毕后，并不会断开。
	// pfsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] );
	// 设置socket的控制选项，有四个参数，返回布尔值。
	socket_set_option();
	// 获取任何socket函数产生的最后错误代号，返回值为整型
	socket_last_error();
	// 获取错误代号代表的错误描述，返回值为字符串
	socket_strerror();
	
	var_dump($de_socket);
